Barrier synchronization is typically used in parallel computing environments in which complex numerical applications are being executed. As is known, when an application is processed in a parallel fashion, various jobs for the application are processed in parallel. Barrier synchronization provides a checkpointing mechanism that ensures that each job has reached a particular point before proceeding.
The number of checkpoints provided in previous barrier synchronization techniques has been statically set for each application or protocol. Thus, there is no identical mechanism for altering the number of synchronization points, if it is determined during processing of the application or protocol that more or fewer checkpoints are needed. Typical barrier synchronization mechanisms are therefore, inflexible. Further, in traditional barrier synchronization techniques, the information provided at each checkpoint is limited to an indication of whether the checkpoint has been reached. There is no mechanism for providing additional information that may be useful during processing of the protocol.
Based on the foregoing, a needs exists for a dynamic barrier synchronization mechanism that allows the number of synchronization points to be determined during the processing of the application. Further, a need exists for a barrier synchronization mechanism that can be easily used in distributed computing environments. A yet further need exists for a barrier synchronization mechanism that is usable by a group of processes executing within the distributed computing environment. Additionally, a need exists for a barrier synchronization mechanism that enables additional information to be provided at each checkpoint.